package com.rem.se.annotation;

/**
 * 注解:和注释一样，是对程序作出解释，与注释不同，注解可以被其他程序，比如编译器读取到。
 * jkd7以前一共定义了7个注解，3个在java.lang中， 4个在java.lang.annotation中
 * <p>
 * <p>
 * -@Override - 检查该方法是否是重写方法。如果发现其父类，或者是引用的接口中并没有该方法时，会报编译错误。
 * -@Deprecated - 标记过时方法。如果使用该方法，会报编译警告。
 * -@SuppressWarnings - 指示编译器去忽略注解中声明的警告。
 *
 * <p>元注解</p>
 * -@Retention - 标识这个注解怎么保存，是只在代码中，还是编入class文件中，或者是在运行时可以通过反射访问。
 * -@Documented - 标记这些注解是否包含在用户文档中。
 * -@Target - 标记这个注解应该是哪种 Java 成员。
 * -@Inherited - 标记这个注解是继承于哪个注解类(默认 注解并没有继承于任何子类)
 * <p>
 * -@SafeVarargs - Java 7 开始支持，忽略任何使用参数为泛型变量的方法或构造函数调用产生的警告。
 * -@FunctionalInterface - Java 8 开始支持，标识一个匿名函数或函数式接口。
 * -@Repeatable - Java 8 开始支持，标识某注解可以在同一个声明上使用多次。
 *
 * @author Rem
 * @date 2021-03-14
 */

public class Demo01 {

    public static void main(String[] args) {
        Demo01 demo01 = new Demo01();

        demo01.test2();
    }


    //重写注解
    @Override
    public String toString() {
        return super.toString();
    }


    //不推荐使用注解，可以使用但是又风险或者有更好的方式  表示该方法以及过期
    @Deprecated
    public void test2() {
    }

    //“镇压”警告注解
    @SuppressWarnings("all")
    public void test3() {

    }
}
